package com.github.wui.ktEx

import android.text.Html
import android.text.Spanned
import android.text.SpannedString
import org.json.JSONArray
import org.json.JSONObject


/**
 * 字符串的一些扩展
 * @author <a href="https://github.com/karai-oss">Mr.xie</a>
 * @Date 2025/4/19
 */


/**
 * 字符串扩展正则表达式  常用的
 * @param rules 表达式的值
 */
fun String.reg(rules: String): String {
    var regex = Regex(rules);
    val matches_result = regex.find(this)

    if (matches_result == null) {
        return ""
    }
    return matches_result.value;
}


/**
 * 匹配手机号
 * @return 未空字符就是没有匹配上
 */
fun String.regPhone(): String {
    return this.reg("^1[3-9]\\d{9}\$")
}


/**
 * 匹配公交路数
 *
 * <p>
 *     步行100米，然后转乘110路公交
 * </p>
 */
fun String.publicCarNum(): String {
    return this.reg("\\d+路")
}


/**
 * 匹配身份证号码
 */
fun String.IdCard(): String {
    return this.reg("^[1-9]\\d{5}(18|19|20)?\\d{2}((0[1-9])|(10|11|12))(([0|1|2][0-9])|10|20|30|31)\\d{3}(\\d|[Xx])\$")
}


/**
 * 转为 JSONObject
 */
fun String.toJSONObject(): JSONObject {
    return JSONObject(this);
}


/**
 * 转为JSONArray
 */
fun String.toJSONArray(): JSONArray {
    return JSONArray(this)
}


/**
 * 字符串转为 HTML
 */
fun String.toHtml(): String {
    return Html.toHtml(SpannedString(this))
}


/**
 * html 转为 Spanned
 */
fun String.fromHtml(): Spanned {
    return Html.fromHtml(this)
}

fun String.toChinaMoney(): String {
    return "￥ ".plus(this)
}


fun String.toAmericanMoney(): String {
    return "$ ".plus(this)
}